// pages/activitymodify/activitymodify.ts
import { tipMixin } from "@mixin/tip";
import {uploadfile} from "@utils/http.js";
import dayjs from "dayjs";
Page({
  mixins:[tipMixin],
  /**
   * 页面的初始数据
   */
  data: {
    form:{
      title:"",
      type:"学习",
      start:dayjs().format("YYYY-MM-DD HH:mm"),
      end:dayjs().format("YYYY-MM-DD HH:mm"),
      files:[],
      count:0,
      location:"",
      organizer:"",
      introduction:"",
      rule:"",
      form:"",
      collectOrNot:false,
      recommand:"",
      reaper:"",
      school:"广东工业大学",
      campus:"大学城"
    },
    start:dayjs().toDate().getTime(),
    tags:["学习","娱乐","交友"],
    activeCells:[],
    showModal:false
  },
  
  changeCell:function(e:any){
    this.setData({
      activeCells:e.detail
    })
  },
  deleteFile:function(e:any){
    this.setData({
      form:{
        ...this.data.form,
        files:this.data.form.files.filter((_,index)=>{
          return index!==e.detail.index
        })
      }
    })
  },
  handleStartChange:function(e:any){
    this.setData({
      start:e.detail.value,
      form:{
        ...this.data.form,
        start:dayjs(e.detail.value).format("YYYY-MM-DD HH:mm")
      }
    })
  },
  handleEndChange:function(e:any){
    this.setData({
      form:{
        ...this.data.form,
        end:dayjs(e.detail.value).format("YYYY-MM-DD HH:mm")
      }
    })
  },
  handleUpload:function(e:any){
    this.setData({
      form:{
        ...this.data.form,
        files:[...this.data.form.files,...e.detail.file]
      }
    })
  },
  saveFormData:function(e:any){
    this.setData({
      form:{
        ...this.data.form,
        [e.currentTarget.dataset.key]:e.detail
      }
    })
  },
  changeType:function(e:any){
    this.setData({
      form:{
        ...this.data.form,
        type:this.data.tags[e.currentTarget.dataset.index]
      }      
    })
  },
  showModal(e:any){
    this.setData({
      showModal:e.currentTarget.dataset.show
    })
  },
  verify(){
    let form:any=this.data.form
    if(Object.values(form).some(item=>{
      return typeof item==="string"&&!item.trim()
    })){
      this.tip("请填写完整信息")
      return
    }
    if(form.collectOrNot){
      form={
        ...form,
        informationRequestDto:getApp().globalData.sheet
      }
      if(Object.values(form.informationRequestDto).some(item=>{
        return typeof item==="string"&&!item||Array.isArray(item)&&item.some(item=>{
          return typeof item==="string"&&!item
        })
      })){
        this.tip("请填写表格需收集的信息")
        return 
      }
    }
    this.setData({
      showModal:true
    })
  },
  hideModal(){
    this.setData({
      showModal:false
    })
  },
  sumbit:async function(){
    this.setData({
      showModal:false
    })
    const form=this.data.form
    form.start=dayjs(form.start).format("YYYY-MM-DD HH:mm:ss")
    form.end=dayjs(form.end).format("YYYY-MM-DD HH:mm:ss")
    form.informationRequestDto=getApp().globalData.sheet
    wx.showLoading({
      title:"加载中"
    })
    uploadfile("/activity",form,"files").then(()=>{
      this.tip("提交成功","success")
      getApp().globalData.sheet=null
      setTimeout(()=>{
      wx.navigateBack()
      },500)
    }).finally(()=>{
      wx.hideLoading()
    })
  },
  tip:function(message:string,type?:string){},
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad:function() {
  },


  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})